
package com.jf.cloud.supplier.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.*;
import java.util.Date;

/**
 * 供应商详情DTO
 *
 * @author zz
 * @date 2022-03-14 17:04:32
 */
public class SupplierDetailDTO{
    private static final long serialVersionUID = 1L;

    @Schema(description = "系统类型 1商家端  2平台端 3供应商端" )
    private Integer sysType;

    @Schema(description = "供应商id" )
    private Long supplierId;

    @Schema(description = "供应商名称" )
    @NotBlank(message = "供应商名称不能为空")
    @Length(min = 2, max = 30, message = "供应商名称限制在2到30个字符之间")
    private String supplierName;

    @Schema(description = "供应商店铺名称" )
    private String supplierShopName;

    @Schema(description = "联系人姓名" )
    @NotBlank(message = "联系人不能为空")
    @Length(min = 2, max = 10, message = "联系人姓名需要在2到10个字符之间")
    private String contactName;

    @Schema(description = "联系方式" )
    @NotBlank(message = "联系方式不能为空")
    private String contactPhone;

    @Schema(description = "供应商简介" )
    @Length(max = 200, message = "供应商简介字符不能超过200")
    private String intro;

    @Schema(description = "接收短信号码" )
    private String noticeMobile;

    @Size(max = 30)
    @Schema(description = "邮箱" ,required=true)
    @NotBlank(message = "联系邮箱不能为空")
    private String email;

    @Schema(description = "详细地址" )
    @NotBlank(message = "详细地址不能为空")
    @Length(min = 1, max = 50, message = "详细地址长度需要在1到50之间")
    private String detailAddress;

    @Schema(description = "供应商logo(可修改)" )
    private String supplierLogo;

    @Schema(description = "供应商状态(-1:已删除 0: 停业中 1:营业中 2:平台下线 3:开店申请待审核 4:店铺申请中 5:上线申请待审核)" )
    private Integer supplierStatus;

    @Schema(description = "备注信息" )
    private String remarks;

    @Schema(description = "是否优选好店 1.是 0.不是" )
    @Max(value = 1, message = "只能为0或1")
    @Min(value = 0, message = "只能为0或1")
    private Integer isPreferred;

    @Schema(description = "账号名" ,required=true)
    private String username;

    @Size(max = 64)
    @Schema(description = "密码" ,required=true)
    private String password;

    @Size(max = 15)
    @Schema(description = "手机号" ,required=true)
    private String phone;

    @Schema(description = "验证码" ,required=true)
    private String code;

    @Schema(description = "移动端背景图" )
    private String mobileBackgroundPic;

    @Schema(description = "pc背景图" )
    private String pcBackgroundPic;

    @Schema(description = "店铺中的商品数量" )
    @Max(value = 5, message = "最多只能返回5个商品")
    @Min(value = 0, message = "spuNum不能小于0")
    private Integer spuNum;

    @Schema(description = "省ID" )
    @NotNull(message = "省ID不能为空")
    private Long provinceId;

    @Schema(description = "省" )
    @NotBlank(message = "省名称不能为空")
    private String province;

    @Schema(description = "城市ID" )
    @NotNull(message = "城市ID不能为空")
    private Long cityId;

    @Schema(description = "城市" )
    @NotBlank(message = "城市名称不能为空")
    private String city;

    @Schema(description = "区ID" )
    @NotNull(message = "区ID不能为空")
    private Long areaId;

    @Schema(description = "区" )
    @NotBlank(message = "区名称不能为空")
    private String area;

    @Schema(description = "签约起始时间" )
    private Date contractStartTime;

    @Schema(description = "签约终止时间" )
    private Date contractEndTime;

    public Integer getSysType() {
        return sysType;
    }

    public void setSysType(Integer sysType) {
        this.sysType = sysType;
    }

    public Long getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(Long supplierId) {
        this.supplierId = supplierId;
    }

    public String getSupplierShopName() {
        return supplierShopName;
    }

    public void setSupplierShopName(String supplierShopName) {
        this.supplierShopName = supplierShopName;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public String getContactName() {
        return contactName;
    }

    public void setContactName(String contactName) {
        this.contactName = contactName;
    }

    public String getContactPhone() {
        return contactPhone;
    }

    public void setContactPhone(String contactPhone) {
        this.contactPhone = contactPhone;
    }

    public String getIntro() {
        return intro;
    }

    public void setIntro(String intro) {
        this.intro = intro;
    }

    public String getNoticeMobile() {
        return noticeMobile;
    }

    public void setNoticeMobile(String noticeMobile) {
        this.noticeMobile = noticeMobile;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getDetailAddress() {
        return detailAddress;
    }

    public void setDetailAddress(String detailAddress) {
        this.detailAddress = detailAddress;
    }

    public String getSupplierLogo() {
        return supplierLogo;
    }

    public void setSupplierLogo(String supplierLogo) {
        this.supplierLogo = supplierLogo;
    }

    public Integer getSupplierStatus() {
        return supplierStatus;
    }

    public void setSupplierStatus(Integer supplierStatus) {
        this.supplierStatus = supplierStatus;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public Integer getIsPreferred() {
        return isPreferred;
    }

    public void setIsPreferred(Integer isPreferred) {
        this.isPreferred = isPreferred;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMobileBackgroundPic() {
        return mobileBackgroundPic;
    }

    public void setMobileBackgroundPic(String mobileBackgroundPic) {
        this.mobileBackgroundPic = mobileBackgroundPic;
    }

    public String getPcBackgroundPic() {
        return pcBackgroundPic;
    }

    public void setPcBackgroundPic(String pcBackgroundPic) {
        this.pcBackgroundPic = pcBackgroundPic;
    }

    public Integer getSpuNum() {
        return spuNum;
    }

    public void setSpuNum(Integer spuNum) {
        this.spuNum = spuNum;
    }
    public Long getProvinceId() {
        return provinceId;
    }

    public void setProvinceId(Long provinceId) {
        this.provinceId = provinceId;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public Long getCityId() {
        return cityId;
    }

    public void setCityId(Long cityId) {
        this.cityId = cityId;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public Long getAreaId() {
        return areaId;
    }

    public void setAreaId(Long areaId) {
        this.areaId = areaId;
    }

    public String getArea() {
        return area;
    }

    public void setArea(String area) {
        this.area = area;
    }

    public Date getContractStartTime() {
        return contractStartTime;
    }

    public void setContractStartTime(Date contractStartTime) {
        this.contractStartTime = contractStartTime;
    }

    public Date getContractEndTime() {
        return contractEndTime;
    }

    public void setContractEndTime(Date contractEndTime) {
        this.contractEndTime = contractEndTime;
    }


    @Override
    public String toString() {
        return "SupplierDetailDTO{" +
                "supplierId=" + supplierId +
                ", supplierName='" + supplierName + '\'' +
                ", supplierShopName='" + supplierShopName + '\'' +
                ", contactName='" + contactName + '\'' +
                ", contactPhone='" + contactPhone + '\'' +
                ", intro='" + intro + '\'' +
                ", noticeMobile='" + noticeMobile + '\'' +
                ", email='" + email + '\'' +
                ", detailAddress='" + detailAddress + '\'' +
                ", supplierLogo='" + supplierLogo + '\'' +
                ", supplierStatus=" + supplierStatus +
                ", remarks='" + remarks + '\'' +
                ", isPreferred=" + isPreferred +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", phone='" + phone + '\'' +
                ", code='" + code + '\'' +
                ", mobileBackgroundPic='" + mobileBackgroundPic + '\'' +
                ", pcBackgroundPic='" + pcBackgroundPic + '\'' +
                ", spuNum=" + spuNum +
                ", provinceId=" + provinceId +
                ", province='" + province + '\'' +
                ", cityId=" + cityId +
                ", city='" + city + '\'' +
                ", areaId=" + areaId +
                ", area='" + area + '\'' +
                ", contractStartTime=" + contractStartTime +
                ", contractEndTime=" + contractEndTime +
                '}';
    }
}
